package com.lh.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**  
 * @Description: 
 * @author TangCai
 * @date 2016年11月3日 上午11:00:27
 * @version V1.0  
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ExcelExportRule {// 专为EXEL文件定义的注释接口
	/*
	 * 列名定义报表中每列的标签，如果是对象，则代表对象中多列列名
	 */
	public String[] label();

	/*
	 * 若label是为对象则objectLabel对应对象中的标签名
	 */
	public String[] objectLabel() default {};

	/*
	 * 设置列的宽度
	 */
	public int[] columnView() default { 20 };

	/*
	 * 设置列中字体的大小
	 */
	public int[] size() default { 8 };

	/*
	 * 设置列中字体是否斜体字
	 */
	public boolean[] isUnderline() default { false };

	/*
	 * 设置列中字体的颜色
	 */
	public Colour[] colour() default { Colour.BLACK };
	
	/*
	 * 与下一个行的同列相同是否合并
	 */
	public boolean[] isNextMerge()  default { false };

	public enum Colour {
		BLACK, RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET, WHITE;
		public jxl.format.Colour get() {
			if (this.equals(BLACK))
				return jxl.format.Colour.BLACK;
			else if (this.equals(RED))
				return jxl.format.Colour.RED;
			else if (this.equals(ORANGE))
				return jxl.format.Colour.ORANGE;
			else if (this.equals(YELLOW))
				return jxl.format.Colour.YELLOW;
			else if (this.equals(GREEN))
				return jxl.format.Colour.GREEN;
			else if (this.equals(BLUE))
				return jxl.format.Colour.BLUE;
			else if (this.equals(INDIGO))
				return jxl.format.Colour.INDIGO;
			else if (this.equals(VIOLET))
				return jxl.format.Colour.VIOLET;
			else if (this.equals(WHITE))
				return jxl.format.Colour.WHITE;
			return null;
		}
	}
}